const fxaa_vert_multisampled = /*wgsl*/ `
struct VertexInput {
    @builtin(vertex_index) VertexIndex:u32,
}
struct VertexOutput {
    @builtin(position) Position : vec4<f32>,
    @location(0)  uv : vec2<f32>,
    @location(1) rgbNW:vec2<f32>,
    @location(2) rgbNE:vec2<f32>,
    @location(3) rgbSW:vec2<f32>,
    @location(4) rgbSE:vec2<f32>,
    @location(5) rgbM:vec2<f32>,
}
@group(0) @binding(0) var<uniform> resolution : vec2<f32>;
@vertex
fn main(input:VertexInput) -> VertexOutput {
    var output:VertexOutput;
    var pos = array<vec2<f32>, 3>(
        vec2<f32>(-1.0, 3.0),
        vec2<f32>(-1.0, -1.0),
        vec2<f32>(3.0, -1.0)
    );
    var uvs = array<vec2<f32>, 3>(
        vec2<f32>(0.0, -1.0)*resolution,
        vec2<f32>(0.0, 1.0)*resolution,
        vec2<f32>(2.0, 1.0)*resolution
    );
    output.Position=vec4<f32>(pos[input.VertexIndex], 0.0, 1.0);
    output.uv=uvs[input.VertexIndex];
    output.rgbNW=uvs[input.VertexIndex]+vec2<f32>(-1.0, -1.0);
    output.rgbNE=uvs[input.VertexIndex]+vec2<f32>(1.0, -1.0);
    output.rgbSW=uvs[input.VertexIndex]+vec2<f32>(-1.0, 1.0);
    output.rgbSE=uvs[input.VertexIndex]+vec2<f32>(1.0, 1.0);
    output.rgbM=uvs[input.VertexIndex];
    return output;
}
`;
const fxaa_vert = /*wgsl*/ `
struct VertexInput {
    @builtin(vertex_index) VertexIndex:u32,
}
struct VertexOutput {
    @builtin(position) Position : vec4<f32>,
    @location(0)  uv : vec2<f32>,
    @location(1) rgbNW:vec2<f32>,
    @location(2) rgbNE:vec2<f32>,
    @location(3) rgbSW:vec2<f32>,
    @location(4) rgbSE:vec2<f32>,
    @location(5) rgbM:vec2<f32>,
}
@group(0) @binding(0) var<uniform> resolution : vec2<f32>;
@vertex
fn main(input:VertexInput) -> VertexOutput {
    var output:VertexOutput;
    var pos = array<vec2<f32>, 3>(
        vec2<f32>(-1.0, 3.0),
        vec2<f32>(-1.0, -1.0),
        vec2<f32>(3.0, -1.0)
    );
    var uvs = array<vec2<f32>, 3>(
        vec2<f32>(0.0, -1.0),
        vec2<f32>(0.0, 1.0),
        vec2<f32>(2.0, 1.0)
    );
    output.Position=vec4<f32>(pos[input.VertexIndex], 0.0, 1.0);
    output.uv=uvs[input.VertexIndex];
    output.rgbNW=uvs[input.VertexIndex]+vec2<f32>(-1.0, -1.0)/resolution;
    output.rgbNE=uvs[input.VertexIndex]+vec2<f32>(1.0, -1.0)/resolution;
    output.rgbSW=uvs[input.VertexIndex]+vec2<f32>(-1.0, 1.0)/resolution;
    output.rgbSE=uvs[input.VertexIndex]+vec2<f32>(1.0, 1.0)/resolution;
    output.rgbM=uvs[input.VertexIndex];
    return output;
}
`;
export { fxaa_vert, fxaa_vert_multisampled };
